﻿#define  _CRT_SECURE_NO_WARNINGS 1

//一.输入年份，判断是否为闰年。如果是，则输出 yes，否则输出 no。提示：闰年的判断有两个条件，只需满足一个即可。
//
//1. 能够被 4 整除但不能被 100 整除的为闰年。
//2. 能够被 400 整除的为闰年。
//输入
//一个四位整数，表示年份。
//输出
//闰年则输出 yes，否则输出 no。
//样例
//输入
//1966
//输出
//yes
#include <stdio.h>
//int  main()
//{
//	int year = 0; //给年龄这个变量初始化
//	scanf("%d", &year);
//	if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))//这就是闰年的那两个判断条件，用关系运算符或-||
//		printf("yes");
//	else
//		printf("no");
//
//
//	return 0;
//}




//二.晶晶上初中了。妈妈认为晶晶应该更加用功学习，所以晶晶除了上学之外，
// 还要参加妈妈为她报名的各科补习班。晶晶的妈妈给了晶晶的下周每天上补习班的小时数
// 晶晶同学想知道，下周平均一天要上多少小时的补习班（结果保留 1 位小数）
// 最长的补习班需要上几小时，最短的补习班需要上几小时？
//输入
//7 个整数，用空格隔开，代表晶晶同学下周 7 天需要上的补习班的小时数。
//输出
//一个小数和两个整数，用空格隔开，第一个小数代表下周平均每天需要上多少小时补习班（结果保留 1 位小数）
// 第二个整数代表最长的补习班的小时数，第三个整数代表最短的补习班的小时数。
//样例
//输入
//1 3 2 5 4 7 6
//输出
//4.0 7 1
//int main()
//{
//	//用这个数组来存储这七天的补习班小时数
//	int hours[7];
//	//用于存储总和，最大值，最小值
//	int sum = 0;
//	int max = 0;
//	int min = 0;
//	//循环变量
//	int i = 0;
//	//输入七个整数代表这七天相对应的补习班小时数
//	for (i = 0; i < 7; i++)
//	{
//		scanf("%d", &hours[i]);
//		//求和
//		sum += hours[i];
//	}
//		//初始化最大值最小值为第一天的小时数
//		max = hours[0];
//		min = hours[0];
//		//从第二天开始更新最大值最小值
//		for (i = 1; i < 7; i++)
//		{
//			if (hours[i] > max)
//			{
//				max = hours[i];
//			}
//			if (hours[i] < min)
//			{
//				min = hours[i];
//
//			}
//		}
//	
//	//求平均数
//		double average = sum / 7.0;
//		//依次输出数据其中平均数保留一位小数
//		printf("%.1f %d %d\n", average, max, min);
//
//	return 0;
//}




//三.斐波那契数列：super 家养了一对刚出生的兔子，兔子出生第 3 月开始每月都会生一对小兔子，
// 小兔子出生后同样第 3 月开始也会每月生一对兔子，super 想知道，如果兔子不死，n 月后家里会有多少对兔子
//设计一个程序：输入 n，输出兔子数量
//(2 < n < 30)
//	样例输入：7
//	样例输出：13  
//	样例输入：12
//	样例输出：144
int main()
{
	//月份
	int n = 0;
	//提示用户输入月份
	printf("请输入月份n(2 < n < 38): ");
	//用户输入的月份存到变量n中
	scanf("%d", &n);
	//第一个月兔子的对数，最开始是最初的一对兔子
	int f1 = 1;
	//第二月
	int f2 = 1;
	//第n个月的兔子对数
	int f_n = 0;
	//从第三个月开始计算，前两个月兔子对数都是1，从n>=3开始迭代
	//循环次数是n-2次，如n = 3时循环一次 n = 4时循环两次
	for (int i = 3; i <= n; i++)
	{
		//第i个月的兔子对数 = 第i-1个月的对数+第i-2个月的对数
		//第i-2个月的兔子到第i个月会繁殖新兔子，所以总数是前两个月之和
		f_n = f1 + f2;
		//更新f1为上个月（i-1月）的兔子对数，即为原来的f2
		f1 = f2;
		//更新f2为当前月(i月)的兔子对数，即为刚计算出的f_n
		f2 = f_n;

	}
	printf("%d 月后家里的兔子的数量是: %d对\n", n, f2);
	return 0;
}